package com.xbongbong.saas.script.service;

import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.pro.script.pojo.dto.AllScriptDTO;
import com.xbongbong.pro.script.pojo.dto.ScriptDTO;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.script.pojo.vo.ScriptVO;


/**
 * 初始化脚本解释
 *
 * @author feng.zheng
 * @version v1.0
 * @date 2019/1/17 14:42
 * @since v1.0
 */

public interface InitExplainsService {
    /**
     * 初始化客户
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/19 14:00
     */
    ScriptVO initCustomer(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化联系人
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/18 14:00
     */
    ScriptVO initContact(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化合同
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/18 21:41
     */
    ScriptVO initContract(ScriptDTO scriptDTO) throws XbbException;

    /**
     * Description: 初始化销售机会
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author long.rao
     * @date 2019-01-18 15:46
     */
    ScriptVO initOpportunity(ScriptDTO scriptDTO) throws XbbException;

    /**
     * Description: 初始化访客计划
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author long.rao
     * @date 2019-01-18 19:18
     */
    ScriptVO initCommunicatePlan(ScriptDTO scriptDTO) throws XbbException;

    /**
     * Description: 初始化BOM清单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author long.rao
     * @date 2019-01-18 19:18
     */
    ScriptVO initBomBill(ScriptDTO scriptDTO) throws XbbException;

    /**
     * Description: 初始化客户跟进记录
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author long.rao
     * @date 2019-01-18 19:43
     */
    ScriptVO initCustomerCommunicate(ScriptDTO scriptDTO) throws XbbException;

    /**
     * Description: 初始化供应商跟进记录
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author long.rao
     * @date 2019-01-18 21:57
     */
    ScriptVO initSupplierCommunicate(ScriptDTO scriptDTO) throws XbbException;

    /**
     * Description: 初始化工作报告(日报)
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author long.rao
     * @date 2019-01-19 14:58
     */
    ScriptVO initWorkReportDaily(ScriptDTO scriptDTO) throws XbbException;

    /**
     * Description: 初始化工作报告(周报)
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author long.rao
     * @date 2019-01-19 15:09
     */
    ScriptVO initWorkReportWeekly(ScriptDTO scriptDTO) throws XbbException;

    /**
     * Description: 初始化工作报告(月报)
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author long.rao
     * @date 2019-01-19 15:09
     */
    ScriptVO initWorkReportMonthly(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化回款
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/18 14:07
     */
    ScriptVO initPayment(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化回款单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/18 14:07
     */
    ScriptVO initPaymentSheet(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化发票
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/18 14:07
     */
    ScriptVO initInvoice(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化付款计划
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/18 14:07
     */
    ScriptVO initPayPlan(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化生产单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/18 14:07
     */
    ScriptVO initProductionOrder(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化供应商
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author Jian.Wang
     * @date 2019/1/18 13:03
     */
    ScriptVO initSupplier(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化供应商联系人
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author Jian.Wang
     * @date 2019/1/18 15:21
     */
    ScriptVO initSupplierContact(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化采购合同
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author Jian.Wang
     * @date 2019/1/18 15:42
     */
    ScriptVO initPurchase(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化报价单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author long.rao
     * @date 2019-08-12 16:22
     */
    ScriptVO initQuotation(ScriptDTO scriptDTO) throws XbbException;

    ScriptVO initClue(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化采购退货单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author Jian.Wang
     * @date 2019/1/18 15:55
     */
    ScriptVO initReturnedPurchase(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化盘点单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/18 14:07
     */
    ScriptVO initInventory(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化入库单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/18 14:07
     */
    ScriptVO initInstock(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化入库单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/18 14:07
     */
    ScriptVO initPurchaseInstock(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化出库单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/18 14:07
     */
    ScriptVO initOutstock(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化产品模板
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/18 14:07
     */
    ScriptVO initProduct(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化调拨单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author Jian.Wang
     * @date 2019/1/19 17:03
     */
    ScriptVO initTransfer(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化装配单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author Jian.Wang
     * @date 2019/1/19 17:58
     */
    ScriptVO initAssemble(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化仓库
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author Jian.Wang
     * @date 2019/1/19 17:58
     */
    ScriptVO initWarehouse(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化全部属性
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/19 14:00
     */
    ScriptVO initAllField(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化库存产品
     *
     * @param scriptDTO 入参
     * @return 回参
     * @throws XbbException 异常
     */
    ScriptVO initStockProduct(ScriptDTO scriptDTO) throws XbbException;

    /**
     * Description: 工单模板初始化
     * @param scriptDTO
     * @return com.xbongbong.pro.script.pojo.vo.ScriptVO
     * @throws XbbException XbbException
     * @author 魏荣杰
     * @date 2019/3/12 19:20
     * @since v1.0
     */
    ScriptVO initWorkOrder(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化付款单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/19 14:00
     */
    ScriptVO initPayPlanSheet(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化红冲回款单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/19 14:00
     */
    ScriptVO initRedPaymentSheet(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化坏账回款单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/19 14:00
     */
    ScriptVO initBadDebt(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化退货退款
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/19 14:00
     */
    ScriptVO initRefund(ScriptDTO scriptDTO) throws XbbException;
    /**
     * 初始化期初库存表单
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author caoyy
     * @date 2019/1/19 14:00
     */
    ScriptVO initWarehouseOriStock(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化跟进提醒
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/1/19 14:00
     */
    ScriptVO initPushNotify(ScriptDTO scriptDTO) throws XbbException;

    /**
     * 初始化所有
     * @return
     * @throws XbbException
     * @param allScriptDTO
     */
    ScriptVO initAll(AllScriptDTO allScriptDTO) throws XbbException;


    /**
     *
     * @param allScriptDTO
     * @return
     * @throws XbbException
     */
    ScriptVO initMenuColor(AllScriptDTO allScriptDTO) throws XbbException;

    /**
     * 初始化常用表单和快捷新建
     * @param allScriptDTO
     * @return
     * @throws XbbException
     */
    ScriptVO initQuickAndCommon(AllScriptDTO allScriptDTO) throws XbbException;

    BaseVO initPermission(BaseDTO baseDTO) throws XbbException;
    /**
     * 处理BI需要的产品和业绩分配
     * @param allScriptDTO
     * @return
     * @throws XbbException
     */
    ScriptVO initBIProductAndPerformance(AllScriptDTO allScriptDTO) throws XbbException;

    /**
     * 初始化企业客户和个人客户
     * @param allScriptDTO
     * @return
     * @throws XbbException
     */
    ScriptVO initCustomerList(AllScriptDTO allScriptDTO) throws XbbException;

    /**
     * 初始化表单
     * @param allScriptDTO
     * @return
     */
    ScriptVO initForm(AllScriptDTO allScriptDTO) throws XbbException;

    /**
     * 初始化工单表单
     * @param allScriptDTO
     * @return
     */
    ScriptVO initWorkOrderForm(AllScriptDTO allScriptDTO) throws XbbException;

    /**
     * 初始化市场活动
     *
     * @param scriptDTO 刷脚本入参
     * @return ScriptVO 返回表单解释id
     * @throws XbbException 业务异常
     * @author chunyang.qin
     * @date 2019-08-12 16:22
     */
    ScriptVO initMarketActivity(ScriptDTO scriptDTO) throws XbbException;

    ScriptVO initMarketingActivityManagement(ScriptDTO scriptDTO) throws XbbException;
    /**
     * 初始化竞争对手
     * date: 2022/8/16 4:11 下午
     * @author yingjf
     * @param scriptDTO:
     */
    ScriptVO initCompetitor(ScriptDTO scriptDTO) throws XbbException;
    /**
     * 初始化竞争对手分析
     * date: 2022/8/17 10:29 上午
     * @author yingjf
     * @param scriptDTO:
     */
    ScriptVO initCompetitorAnalysis(ScriptDTO scriptDTO) throws XbbException;
}
